package com.night.icm.service.base.service.comprehensive_test;

import com.night.icm.common.night_enum.CompAssessProcessStatus;
import com.night.icm.model.base.comprehensive_test.ComprehensiveScoreDTO;

import java.util.List;

/**
 * ComprehensiveScoreService
 *
 * @author Liao ZhiYong
 * @date 2020/3/5
 */
public interface ComprehensiveScoreService {
    /**
     * 查找学生综合测评
     *
     * @param studentId               学生id
     * @param compAssessProcessStatus 流程状态
     * @return 学生综合测评
     */
    List<ComprehensiveScoreDTO> findAll(String studentId, CompAssessProcessStatus compAssessProcessStatus);

    /**
     * 模糊查询学生综合测评
     *
     * @param academyName             所属学院name
     * @param professionName          所属专业name
     * @param className               所属班级name
     * @param studentName             学生姓名
     * @param year                    所属年度
     * @param compAssessProcessStatus 流程状态
     * @param classId                 班级id
     * @param studentId               学生id
     * @param studentCode             学生code
     * @return 学生综合测评
     */
    List<ComprehensiveScoreDTO> search(String academyName, String professionName, String className, String studentName, String year, CompAssessProcessStatus compAssessProcessStatus, String classId, String studentId, String studentCode);

    /**
     * 新建年度综合测评
     *
     * @param comprehensiveScoreDTO 综合测评信息
     * @return 综合测评信息
     */
    ComprehensiveScoreDTO create(ComprehensiveScoreDTO comprehensiveScoreDTO);

    /**
     * 提交综合测评数据
     *
     * @param id                    综合测评id
     * @param comprehensiveScoreDTO 综合测评信息
     * @return 综合测评信息
     */
    ComprehensiveScoreDTO complete(String id, ComprehensiveScoreDTO comprehensiveScoreDTO);

    /**
     * 通过id查找综合测评信息
     *
     * @param id id
     * @return 综测信息
     */
    ComprehensiveScoreDTO findById(String id);
}
